package mysql

import "gorm.io/gorm"

type User struct {
	gorm.Model
	Username string `gorm:"column:username;type:varchar(30);unique;not null;comment:用户账号"`
	Password string `gorm:"column:password;type:varchar(100);not null;comment:用户密码"`
	Nickname string `gorm:"column:nickname;type:varchar(30);comment:用户昵称"`
	Email    string `gorm:"column:email;type:varchar(100);comment:用户邮箱"`
	Phone    string `gorm:"column:phone;type:char(11);comment:用户手机号"`
	Status   int64  `gorm:"column:status;type:tinyint(1);default:1;comment:用户状态"`
	Salt     string `gorm:"column:salt;type:varchar(20);comment:盐"`
}

//用户实名表

type UserRealName struct {
	gorm.Model
	UserId   uint   `gorm:"column:user_id;type:int(11);unique;not null;comment:用户ID"`
	RealName string `gorm:"column:realName;type:varchar(30);not null;comment:用户真实姓名"`
	IdCard   string `gorm:"column:idCard;type:char(18);unique;not null;comment:用户身份证号"`
}

//注册

func (u *User) Create() error {
	return Db.Create(&u).Error
}

//根据用户名查询用户信息

func (u *User) GetUserInfoUsername(username string) *User {
	Db.Where("username=?", username).Find(&u)
	return u
}

func (u *User) GetUserInfoPhone() error {
	return Db.Where("username=?", u.Phone).First(&u).Error
}

//创建用户实名

func (u *UserRealName) Create() (err error) {
	return Db.Create(&u).Error
}

//根据用户id查询用户是否实名

func (u *UserRealName) GetUserRealNameByUserId() (err error) {
	return Db.Where("user_id = ?", u.UserId).First(&u).Error
}

//根据身份证号码查询是否实名

func (u *UserRealName) GetUserRealNameByIdCard() (err error) {
	return Db.Where("id_card = ?", u.RealName).First(&u).Error
}
